#include<iostream>
#include<algorithm>
using namespace std;

class Solution {
public:
    int mySqrt(int x) {
        if (x == 0) return 0; // 如果x为0，则算术平方根为0
        int left = 1, right = x, ans = 0; // 初始化查找范围为[1, x]，答案初始值为0
        while (left <= right) { // 当查找范围不为空时
            int mid = left + (right - left) / 2; // 取中间值
            if (mid <= x / mid) { // 如果mid的平方小于等于x
                ans = mid; // 更新答案
                left = mid + 1; // 缩小查找范围到[mid+1, right]
            } else { // 如果mid的平方大于x
                right = mid - 1; // 缩小查找范围到[left, mid-1]
            }
        }
        return ans; 
    }
};

int main()
{
    Solution s;
    int x = 99;
    cout << s.mySqrt(x) << endl;
    return 0;
}